/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package servidor_cantador;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author gabriel
 */
public class Partida extends Thread{
        
    
    public Partida (String partida){

        super(partida);

    }

    @Override
    public void run(){
        int numPartida =  Integer.parseInt(getName());
        Connection conexion = conexionBD();
        Date fechaActual;
        Date fecha_inicio;
        long mInicio;
        
        ResultSet result = BuscarRondas(conexion,numPartida);
      
        try {
            while (result.next()) {
                
                fecha_inicio = (Date) result.getObject("fecha");
                fechaActual = new Date();

                mInicio = fecha_inicio.getTime() - fechaActual.getTime();

                if(mInicio >= 0){
                    try {
                        System.out.println("Empezo La partida "+getName());
                        sleep(mInicio);
                    } catch (InterruptedException ex) {
                        System.out.print("Se dano el sleep de partida");
                    }

                Cantante cantador = new Cantante(""+result.getObject("idRonda"),Integer.parseInt(getName()));
                cantador.start();
                }
                
            }
        } catch (SQLException ex) {

            Logger.getLogger(Partida.class.getName()).log(Level.SEVERE, null, ex);
        
        }

    }

    public ResultSet BuscarRondas(Connection conexion, int numPartida){

        try {
            Statement statement = conexion.createStatement();
            ResultSet result = statement.executeQuery("SELECT r.idRonda,r.num_ronda,r.fecha FROM partida pa, ronda r WHERE pa.idPartida = r.Partida_IdPartida AND pa.num_partida = "+numPartida);
            
            return result;
            
        } catch (SQLException e) {

            System.out.println("error en la busqueda de fecha");
            return (null);
        }

    }

    public Connection conexionBD(){


        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/multimedia", "root", "");
            return(conexion);
        }
        catch(Exception e){
            System.out.println(e.getMessage());
            return(null);
        }

    }
}
